export function newOpenPostWindow(toUrl, params, isNew) {
  // 判断是否需要在新窗口打开
  if (isNew) {
    window.open(toUrl)
    return
  }
  // 创建一个 form 元素
  const form = document.createElement('form')
  // 设置 form 的 method 属性为 post
  form.setAttribute('method', 'get')
  // 设置 form 的 action 属性为 toUrl
  form.setAttribute('action', toUrl)

  // 将参数放入 input 元素中并添加到 form 中
  Object.entries(params).forEach(([key, value]) => {
    const input = document.createElement('input')
    input.setAttribute('type', 'hidden')
    input.setAttribute('name', key)
    input.value = value
    form.appendChild(input)
  })
  const specail = hasQuestionMark(toUrl)
  window.open(`${toUrl}${specail}${analyticalTransmission(params)}`)
  // 将 form 元素添加到当前页面中并提交表单
  // document.body.appendChild(form)
  // form.submit()
  // const newWindow = window.open()
  // newWindow.document.body.appendChild(form)
  // form.submit()
}
// 解析对象并按照浏览器传参形式传递 
function analyticalTransmission(obj) {
  // 过滤掉值为undefined的属性
  const filteredObj = Object.entries(obj).reduce((acc, [key, value]) => {
    if (value !== undefined) {
      acc[key] = value
    }
    return acc
  }, {})

  // 序列化为查询字符串
  const queryString = Object.keys(filteredObj)
    .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(filteredObj[key])}`)
    .join('&')

  return queryString
}
function hasQuestionMark(url) {
  const specail= url.indexOf('?') !== -1;
  return specail ? '&' : '?'
}